Skip to content

btc(test): G1 version_gate SSOT v36-activation boundary KAT (regression-lock) - #376

Merged
frstrtr merged 1 commit into
masterfrom
btc/g1-version-gate-boundary-kat
Jun 23, 2026
Merged

btc(test): G1 version_gate SSOT v36-activation boundary KAT (regression-lock)#376
frstrtr merged 1 commit into
masterfrom
btc/g1-version-gate-boundary-kat

Conversation

@frstrtr

@frstrtr frstrtr commented Jun 23, 2026

Copy link
Copy Markdown
Owner

Regression-lock golden KAT for the BTC G1 milestone: pins the version_gate SSOT v36-activation boundary so the #288-class accept-gate semantics cannot silently drift.

Scope: test-only, btc/ fenced (src/impl/btc/test/share_test.cpp, +44/-1). No consensus-value change, no build.yml change (rides existing btc_share_test target).

New KATs:

  • BTC_version_gate.V36ActivationBoundary — locks the exact v36 activation boundary on the core::version_gate SSOT.
  • BTC_version_gate.SegwitNotFoldedIntoV36Gate — guards against segwit version bits being conflated with the v36 gate.

Local: btc_share_test 8/8 PASS (build clean to 100%). Signed, no third-party attribution.

Held for operator tap — I do not self-merge.

Pin the V36 share-format/consensus-revision boundary as a regression lock:
is_v36_active() flips at exactly version 36 (35->false, 36->true), uniform
cross-coin, with compile-time static_asserts for the if-constexpr gate sites.
Second KAT guards the SCOPE invariant that coin-specific segwit activation
(BTC 33) is NOT folded into the uniform v36 gate.

Proves the v36-delta BOUNDARY only; full v35 byte-parity is closed separately
by the canonical golden-hex vector (G0). Rides existing btc_share_test exe,
no build.yml change. btc_share_test green locally (boundary 2/2, suite 8/8).
@frstrtr
frstrtr merged commit 8d14f53 into master Jun 23, 2026
19 checks passed
frstrtr added a commit that referenced this pull request Jun 23, 2026
Pin the V36 share-format/consensus-revision boundary as a regression lock:
is_v36_active() flips at exactly version 36 (35->false, 36->true), uniform
cross-coin, with compile-time static_asserts for the if-constexpr gate sites.
Second KAT guards the SCOPE invariant that coin-specific segwit activation
(BTC 33) is NOT folded into the uniform v36 gate.

Proves the v36-delta BOUNDARY only; full v35 byte-parity is closed separately
by the canonical golden-hex vector (G0). Rides existing btc_share_test exe,
no build.yml change. btc_share_test green locally (boundary 2/2, suite 8/8).

Co-authored-by: frstrtr <frstrtr@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant